var express = require('express');
var router = express.Router();

const jwt = require('jsonwebtoken');
const userModel = require('../model/userModel')
const { expressjwt } = require('express-jwt');
const { jiami } = require('../utils/jiami');
/* GET users listing. */
router.get('/', function (req, res, next) {
  res.send('respond with a resource');
});
//注册
router.post('/regin', async function (req, res, next) {
  const { userName, userPwd } = req.body;

  if (!(userName.length > 5 && userPwd.length > 5)) {
    res.json({
      flag: false,
      msg: '密码或用户名输入有误'
    })

  }
  const user = await userModel.findOne({ userName })
  console.log(user);
  if (user) {
    res.json({
      flag: false,
      msg: '用户名重复了，请重新输入'
    })
  } else {
    const c = await userModel.create({ userName, userPwd: jiami(userPwd) });
    if (c) {
      res.json({
        flag: true,
        msg: '注册成功'
      })
    } else {
      res.json({
        flag: false,
        msg: '数据创建出错了'
      })
    }
  }
  // userModel.findOne({
  //   userName
  // }, function (err, result) {
  //   if (err) {
  //     res.json({
  //       flag: false,
  //       msg: '数据有误'
  //     })
  //   } else {
  //     if (result) {
  //       res.json({
  //         flag: false,
  //         msg: '用户名重复请重新输入'
  //       })
  //     } else {
  //       userModel.create({
  //         userName, userPwd: jiami(userPwd)
  //       }, function (err1, result1) {
  //         if (err1) {
  //           res.json({
  //             flag: false,
  //             msg: '用户名重复请重新输入'
  //           })
  //         } else {
  //           res.json({
  //             flag: true,
  //             msg: '注册成功'
  //           })
  //         }
  //       })
  //     }
  //   }
  // })
})
router.get('*', expressjwt({
  secret: 'liujun',
  algorithms: ['HS256']
}), function (req, res, next) {
  next()
})
//首页验证
router.get('/get', function (req, res, next) {
  let { pageSize, pageCurrent } = req.query;
  console.log(pageSize, pageCurrent);
  // userModel.find(function (err, result) {
  //   if (err) {
  //     res.json({
  //       flag: false,
  //       msg: '数据传输出错了'
  //     })
  //   } else {

  //   }
  // })
  // userModel.count(b);
  // console.log(b);
  userModel.count().then(function (n) {
    userModel.find().skip(
      (pageCurrent - 1) * pageSize
    ).limit(pageSize).then(function (result) {
      res.json({
        flag: true,
        data: result,
        pageTotal: Math.ceil(n / pageSize)
      })
    })
  })


})

//删除数据
router.get('/remove', function (req, res) {
  const { id } = req.query;
  new Promise((reslove, resject) => {
    userModel.findByIdAndDelete(id).then(() => {
      res.json({
        flag: false,

      })
    }).catch(() => {
      res.json({
        flag: false,
        msg: '数据出错了'
      })
    })
  })
  // userModel.findByIdAndDelete(id, function (err) {
  //   if (err) {
  //     res.json({
  //       flag: false,
  //       msg: '数据出错了'
  //     })
  //   } else {
  //     res.json({
  //       flag: true
  //     })
  //   }
  // })
})


//修改数据
router.post('/modifyPassword', async function (req, res) {
  let { id, oldpassword, newpassword } = req.body;
  oldpassword = jiami(oldpassword);
  newpassword = jiami(newpassword);
  const a = await userModel.findOneAndUpdate({
    _id: id,
    userPwd: oldpassword
  }, {
    userPwd: newpassword
  })
  // console.log(a);
  if (a) {
    res.json({
      flag: true,
    })
  } else {
    res.json({
      flag: false,
      msg: '找不到对应数据'
    })
  }
  // userModel.findOneAndUpdate({
  //   _id: id,
  //   userPwd: oldpassword
  // }, {
  //   userPwd: newpassword
  // }, function (err, result) {
  //   if (err) {
  //     res.json({
  //       flag: false,
  //       msg: '数据出错了'
  //     })
  //   } else {
  //     if (result) {
  //       res.json({
  //         flag: true,
  //       })
  //     } else {
  //       res.json({
  //         flag: false,
  //         msg: '找不到对应数据'
  //       })
  //     }
  //   }
  // })
})
//登录
router.post('/login', async function (req, res, next) {
  let { userName, userPwd } = req.body;
  userPwd = jiami(userPwd);
  // async
  const b = await userModel.findOne({
    userName, userPwd
  })
  console.log(b);
  if (b) {
    res.json({
      flag: true,
      msg: '登录成功',
      token: jwt.sign({
        //需要加密的文件
        userName
      }, 'liujun', {
        expiresIn: 60 * 30000
      })
    })
  } else {
    res.json({
      flag: false,
      msg: '密码或用户名输入错误'
    })
  }
  // userModel.findOne({
  //   userName, userPwd
  // }, function (err, result) {
  //   if (err) {
  //     res.json({
  //       flag: false,
  //       msg: '数据发生未预料的错误'
  //     })
  //   } else {
  //     if (result) {
  //       res.json({
  //         flag: true,
  //         msg: '登录成功',
  //         token: jwt.sign({
  //           //需要加密的文件
  //           userName
  //         }, 'liujun', {
  //           expiresIn: 60 * 30000
  //         })

  //       })
  //     } else {
  //       res.json({
  //         flag: false,
  //         msg: '数据发生未预料的错误'
  //       })
  //     }
  //   }
  // })
})



module.exports = router;
